load("//bazel:tachyon_cc.bzl", "tachyon_cc_library")

package(default_visibility = ["//visibility:public"])

tachyon_cc_library(
    name = "argument",
    hdrs = ["argument.h"],
    deps = [
        ":pair",
        "//tachyon/zk/expressions:expression",
    ],
)

tachyon_cc_library(
    name = "evaluator",
    hdrs = ["evaluator.h"],
    deps = [
        ":type",
        "//tachyon/zk/lookup/halo2:evaluator",
        "//tachyon/zk/lookup/log_derivative_halo2:evaluator",
    ],
)

tachyon_cc_library(
    name = "pair",
    hdrs = ["pair.h"],
    deps = ["//tachyon/base/json"],
)

tachyon_cc_library(
    name = "prover",
    hdrs = ["prover.h"],
    deps = [
        ":type",
        "//tachyon/zk/lookup/halo2:prover",
        "//tachyon/zk/lookup/log_derivative_halo2:prover",
    ],
)

tachyon_cc_library(
    name = "type",
    hdrs = ["type.h"],
)

tachyon_cc_library(
    name = "verifier",
    hdrs = ["verifier.h"],
    deps = [
        ":type",
        "//tachyon/zk/lookup/halo2:verifier",
        "//tachyon/zk/lookup/log_derivative_halo2:verifier",
    ],
)

tachyon_cc_library(
    name = "verifier_traits_forward",
    hdrs = ["verifier_traits_forward.h"],
)
